In computing, a file server is a device attached to a network that has the primary purpose of providing a location for shared disk access, i.e., shared storage of computer files (such as documents, sound files, photographs, movies, images, databases, etc.) that can be accessed by other machines or virtual machines connected to the network. One common type of file server is a network-attached storage (NAS) device. NAS is specialized for serving files either by its hardware, software, or configuration, and is often manufactured as a computer appliance—a purpose-built specialized computer. NAS systems are networked appliances which contain one or more storage drives, often arranged into logical, redundant storage containers or RAID.
File servers, including NAS devices, can also be utilized to form a storage area network (SAN), which provides access to consolidated, block level data storage. SANs are primarily used to enhance storage devices, such as disk arrays and tape libraries, so that the devices appear to the operating system as locally attached devices. A SAN typically has its own network of storage devices that are generally not individually exposed outside of the SAN. The cost and complexity of SANs have dropped over time, allowing wider adoption across both enterprise and small to medium-sized business environments. At the same time, the number of file storage products and servers, including NAS devices, has greatly increased.
File servers often provide caching solutions that reduce the amount of time necessary to respond to data requests from other servers. However, taking advantage of these caches still requires transmitting requests for data to the file servers, which may be at a remote, off-site location accessible through a network. Depending on distance and network congestion, a server may have to wait an unacceptably long time to retrieve data even if it is cached at the file server.